Software Verification
نویسندگان
چکیده
When a technology reaches a higher level of maturity, its development begins to diversify and to differentiate. In 1885 engineers were happy to build the first car powered by a gasoline engine. Today we see a whole spectrum of vehicles ranging from city cars, limousines, off-road vehicles, sports cars, buses, trucks, etc., that share some basic technologies but greatly differ in details. Software Verification has entered this phase of diversification and we need to start this exposee with a rough classification. On the top level we distinguish between model verification and program verification. By model verification we understand the formal analysis and modelling of systems, algorithm or software at a high level of abstraction using mathematical notions like sets, sequences, relations. Representatives of this category are for instance the B-method, the Z approach, or abstract state machines (ASM). With these, often some concept of refinement is involved, that formalizes the transition from an abstract model to a more concrete model. The goal of these methodologies may be characterized by the label: correctness by construction. Another set of methods use temporal logic model checking (e.g., Promela, CSP). Methods and tools in this category support system development but do not look into the actual implementing code. They are good for eliminating design flaws at a very early stage. Biased by our own interests and competence we will say no more on this kind of verification and concentrate on program verification. This approach presupposes the existence of executable program code together with a specification. Usually the specifications come as annotations in the code written in a specification language closely related to the programming language in use. Before we can comment on the usability of program verification, we need to have an idea to what use it shall be put. Here is a first coarse classification of the use cases of formal methods in programming:
منابع مشابه
Introduction of a Reliable Software for the Calculation of the Gamma Index
Introduction: The gamma index is a known parameter for radiotherapy dose verification. Many free and commercial programs have been written for the calculation of this index. However, the verification of the results has been overlooked in many of the programs. The present study tested the validity of three gamma index calculator programs. Material and ...
متن کاملOn narrowing the gap between verification and systematic testing
Our work on narrowing the gap between verification and systematic testing has two directions: (1) complementing verification with systematic testing, and (2) pushing systematic testing toward reaching verification. In the first direction, we explore how to effectively combine static analysis with systematic testing, so as to guide test generation toward properties that have not been previously ...
متن کاملLessons Learned From Microkernel Verification -- Specification is the New Bottleneck
Software verification tools have become a lot more powerful in recent years. Even verification of large, complex systems is feasible, as demonstrated in the L4.verified and Verisoft XT projects. Still, functional verification of large software systems is rare – for reasons beyond the large scale of verification effort needed due to the size alone. In this paper we report on lessons learned for ...
متن کاملLessons Learned From Microkernel Verification
Software verification tools have become a lot more powerful in recent years. Even verification of large, complex systems seems feasible, as demonstrated in the L4.verified and Verisoft XT projects. Still, functional verification of large software systems is rare. In this paper we hint at some issues that may impede widespread introduction of formal verification in the software lifecycle process.
متن کاملA Simple Complexity Measurement for Software Verification and Software Testing
In this paper, we used a simple metric (i.e. Lines of Code) to measure the complexity involved in software verification and software testing. The goal is then, to argue for software verification over software testing, and motivate a discussion of how to reduce the complexity involved in software verification. We propose to reduce this complexity by translating the software to a simple intermedi...
متن کاملSurvey of Verification and Validation Techniques for Small Satellite Software Development
The purpose of this paper is to provide an overview of the current trends and practices in small-satellite software verification and validation. This document is not intended to promote a specific software assurance method. Rather, it seeks to present an unbiased survey of software assurance methods used to verify and validate small satellite software and to make mention of the benefits and val...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2010